/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import java.util.ArrayList;
import java.util.Arrays;
import model.dao.DaoLocacao;
import model.dao.DaoVeiculo;
import model.dominio.Locacao;
import model.dominio.Veiculo;
import view.prompt.ViewLocacaoPrompt;

/**
 *
 * @author Rodrigo
 */
public class ViewLocacao {

    public void exibirMenuLocacao() {

        int op = ViewLocacaoPrompt.menuLocacao();

        selecionarOpcao(op);

    }

    public void selecionarOpcao(int op) {
        switch (op) {
            case 1:
                if(cadastrarLocacao()){
                    System.out.println("Locação cadastrada com sucesso!");
                }
                break;
            case 2:
                if(cadastrarDevolucao()){
                    System.out.println("Devolução cadastrada com sucesso!");
                }
                break;
            case 3:
                listarLocacoesFinalizadas();
                break;
            case 4:
                listarLocacoesEmAberto();
                break;
                
            case 5:
                listarLocacoesPorVeiculo();
                break;
                
            case 6:
                listarValorLocacoesPorVeiculo();
                break;
        }
    }

    public boolean cadastrarLocacao() {
        Locacao locacao = ViewLocacaoPrompt.preencherLocacao();
        DaoLocacao.registrarLocacao(locacao);
        return true;
    }

    public boolean cadastrarDevolucao() {
        Locacao locacao = ViewLocacaoPrompt.registrarDevolucao();
        if (locacao != null) {
            DaoLocacao.atualizarLocacao(locacao);
            return true;
        } else {
            return false;
        }
    }
    public boolean listarLocacoesFinalizadas(){
        ViewLocacaoPrompt.listarLocacoesFinalizadas();
        return true;
    }
    
    public boolean listarLocacoesEmAberto(){
        ViewLocacaoPrompt.listarLocacoesEmAberto();
        return true;
    }
    public boolean listarLocacoesPorVeiculo(){
        ArrayList<Veiculo> veiculos = DaoVeiculo.buscarLocacoesVeiculos();
        ArrayList<Veiculo> veiculosOrdenada = new ArrayList<Veiculo>();
        String[] s =new String[veiculos.size()];
        for(int i =0; i<veiculos.size();i++){
            s[i] = veiculos.get(i).getLocacoes().size() + "/"+i;
        }
        Arrays.sort(s);
        String aux[];
        for(int i=veiculos.size()-1;i>=0;i--){
            aux = s[i].split("/");
            veiculosOrdenada.add(veiculos.get(Integer.parseInt(aux[1])));
        }
        ViewLocacaoPrompt.listarVeiculosLocacaoQuantidade(veiculos);
        return true;
    }
    public boolean listarValorLocacoesPorVeiculo(){
        ArrayList<Veiculo> veiculos = DaoVeiculo.buscarLocacoesVeiculos();
        ArrayList<Veiculo> veiculosOrdenada = new ArrayList<Veiculo>();
        String[] s =new String[veiculos.size()];
        for(int i =0; i<veiculos.size();i++){
            s[i] = veiculos.get(i).getLocacoes().size() + "/"+i;
        }
        Arrays.sort(s);
        String aux[];
        for(int i=veiculos.size()-1;i>=0;i--){
            aux = s[i].split("/");
            veiculosOrdenada.add(veiculos.get(Integer.parseInt(aux[1])));
        }
        ViewLocacaoPrompt.listarVeiculosLocacaoValor(veiculos);
        return true;
    }
}
